System and method for transmitting a feed related to a first user to a second user

ABSTRACT

Disclosed is a server computer and method that provides a first user interface to a first client computer operated by a first user for display by a first web browser. The first web browser displays web content to the first user. The server computer provides a second user interface to a second client computer operated by a second user for display by a second web browser. The server computer receives a feed request from the second client computer of the second user for a feed related to the first user. The server computer transmits the feed related to the first user to the second client computer to enable the second user to receive at least a portion of the web content.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application Ser.No. 61/452,595, filed Mar. 14, 2011, which is incorporated herein byreference in its entirety.

FIELD

The present disclosure relates to online communication between a firstuser and a second user, and more specifically to transmitting a feedrelated to the first user to the second user.

BACKGROUND

Web content accessible via the Internet includes web pages, videos,photographs, blogs, news, media, songs, etc. Communication about webcontent between individuals is typically done via email, blog post, orvia a social networking site.

SUMMARY

There remains a need, however, to enable real-time communication betweena first user and a second user about web content displayed by a webbrowser to enable the second user to receive at least some of the webcontent. Communication can include commenting on the web content, tipsrelated to the web content, etc.

In one aspect, a server computer provides a first user interface to afirst client computer operated by a first user for display by a firstweb browser. The first web browser displays web content to the firstuser. The server computer provides a second user interface to a secondclient computer operated by a second user for display by a second webbrowser. The server computer receives a feed request from the secondclient computer of the second user for a feed related to the first user.The server computer transmits the feed related to the first user to thesecond client computer to enable the second user to receive at least aportion of the web content.

In one embodiment, the transmitting of the feed related to the firstuser to the second client computer includes transmitting a newsfeedentry to the second client computer. In one embodiment, the providing ofthe first and/or second user interface includes providing a web pageand/or a plug-in. In one embodiment, the displaying of the web contentincludes displaying a webpage, an idea, a comment, and/or a digitalphotograph. In one embodiment, upon receiving the feed request from thesecond client computer for a feed related to the first user, the servercomputer immediately transmits, in real time, the feed to the secondclient computer.

In one embodiment, the transmitting of the feed related to the firstuser to the second client computer to enable the second user to receiveat least a portion of the web content includes enabling the second userto reply to the at least a portion of the web content. In oneembodiment, the transmitting of the feed related to the first user tothe second client computer to enable the second user to receive at leasta portion of the web content includes transmitting search resultscomprising the at least a portion of the web content to the first user.In one embodiment, the server computer receives a follow request for thesecond user to follow the first user via the feed.

These and other aspects and embodiments will be apparent to those ofordinary skill in the art by reference to the following detaileddescription and the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawing figures, which are not to scale, and where like referencenumerals indicate like elements throughout the several views:

FIG. 1A is a block diagram of a client computer communicating with aserver computer over a network in accordance with an embodiment of thepresent disclosure;

FIG. 1B is a flowchart illustrating operations performed by the servercomputer and the client computer to enable a user of the client computerto operate on web content displayed by the client computer in accordancewith an embodiment of the present disclosure;

FIG. 2A is a block diagram of a first client computer and a secondclient computer communicating with the server computer in accordancewith an embodiment of the present disclosure;

FIG. 2B is a flowchart illustrating operations performed by the servercomputer to transmit a feed to the second client computer in accordancewith an embodiment of the present disclosure;

FIGS. 3A-3F are exemplary screen shots of a user interface and a plug-inmodule when a web page is added to the server computer via the plug-inmodule in accordance with an embodiment of the present disclosure;

FIGS. 4A-4F are exemplary screen shots of the user interface and theplug-in module when a web site is added to the server computer via theplug-in module in accordance with an embodiment of the presentdisclosure; and

FIG. 5 is a block diagram illustrating an internal architecture of acomputer in accordance with an embodiment of the present disclosure.

DESCRIPTION OF EMBODIMENTS

Embodiments are now discussed in more detail referring to the drawingsthat accompany the present application. In the accompanying drawings,like and/or corresponding elements are referred to by like referencenumbers.

Various embodiments are disclosed herein; however, it is to beunderstood that the disclosed embodiments are merely illustrative of thedisclosure that can be embodied in various forms. In addition, each ofthe examples given in connection with the various embodiments isintended to be illustrative, and not restrictive. Further, the figuresare not necessarily to scale, some features may be exaggerated to showdetails of particular components (and any size, material and similardetails shown in the figures are intended to be illustrative and notrestrictive). Therefore, specific structural and functional detailsdisclosed herein are not to be interpreted as limiting, but merely as arepresentative basis for teaching one skilled in the art to variouslyemploy the disclosed embodiments.

The present disclosure is described below with reference to blockdiagrams and operational illustrations of methods and devices to selectand present media related to a specific topic. It is understood thateach block of the block diagrams or operational illustrations, andcombinations of blocks in the block diagrams or operationalillustrations, can be implemented by means of analog or digital hardwareand computer program instructions. These computer program instructionscan be provided to a processor of a general purpose computer, specialpurpose computer, ASIC, or other programmable data processing apparatus,such that the instructions, which execute via the processor of thecomputer or other programmable data processing apparatus, implements thefunctions/acts specified in the block diagrams or operational block orblocks.

In some alternate implementations, the functions/acts noted in theblocks can occur out of the order noted in the operationalillustrations. For example, two blocks shown in succession can in factbe executed substantially concurrently or the blocks can sometimes beexecuted in the reverse order, depending upon the functionality/actsinvolved. Furthermore, the embodiments of methods presented anddescribed as flowcharts in this disclosure are provided by way ofexample in order to provide a more complete understanding of thetechnology. The disclosed methods are not limited to the operations andlogical flow presented herein. Alternative embodiments are contemplatedin which the order of the various operations is altered and in whichsub-operations described as being part of a larger operation areperformed independently.

Throughout the specification and claims, terms may have nuanced meaningssuggested or implied in context beyond an explicitly stated meaningLikewise, the phrase “in one embodiment” as used herein does notnecessarily refer to the same embodiment and the phrase “in anotherembodiment” as used herein does not necessarily refer to a differentembodiment. It is intended, for example, that claimed subject matterinclude combinations of example embodiments in whole or in part.

In general, terminology may be understood at least in part from usage incontext. Fore example, terms, such as “and”, “or”, or “and/or,” as usedherein may include a variety of meanings that may depend at least inpart upon the context in which such terms are used. Typically, “or” ifused to associate a list, such as A, B, or C, is intended to mean A, B,and C, here used in the inclusive sense, as well as A, B, or C, hereused in the exclusive sense. In addition, the term “one or more” as usedherein, depending at least in part upon context, may be used to describeany feature, structure, or characteristic in a singular sense or may beused to describe combinations of features, structures or characteristicsin a plural sense. Similarly, terms, such as “a,” “an,” or “the,” again,may be understood to convey a singular usage or to convey a pluralusage, depending at least in part upon context. In addition, the term“based on” may be understood as not necessarily intended to convey anexclusive set of factors and may, instead, allow for existence ofadditional factors not necessarily expressly described, again, dependingat least in part on context.

FIG. 1A is a block diagram of an embodiment of a client computer 105communicating with a server computer 110 over a network 115 such as theInternet. A user uses a web browser 120 on the client computer 105 toaccess the Internet. In one embodiment, a web page is transmitted viathe network 115 to the client computer 105 for display by the webbrowser 120 in a main browser window 130. The web browser 120 displaysweb content 135 in the main window 130 of the web browser 120. The webcontent 135 is generally received from a third party server differentfrom the server computer 110 without going through the server computer110. The third party server is generally independent from the servercomputer 110; and the presentation of the web content from the thirdparty server to the web browser 120 is made without a reference to theserver computer 110. However, the techniques described herein also applyto the scenario in which the web content 135 is from the server computer110.

In one embodiment, the client computer 105 submits a request to theserver computer 110 (e.g., via the web content 135) for a plug-in module140. The plug-in module 140 may be associated with the web content 135,may be associated with another web page, and/or may be associated with adisplayed advertisement. The server computer 110 transmits the plug-inmodule 140 to the browser 120 (to install the plug-in module 140 on thebrowser 120). In one embodiment, the plug-in module 140 is installed onthe browser to present a user interface element such as a button on atoolbar of the web browser 120 (e.g., the browser toolbar or a thirdparty toolbar) or a menu item in the browser 120, etc.

The user of the client computer 105 can activate the plug-in module 140by, for example, selecting the button for the plug-in module 140 (e.g.,via a mouse cursor, touching the button, speaking a command, etc.). Inone embodiment, upon activation, the plug-in module 140 causes the webbrowser 120 to display a user interface 150 separate from the mainbrowser window 130 (e.g., a pop-up window). In one embodiment, the userinterface 150 displays at least a portion of the web content 155 to theuser and enables the user to operate on the displayed web content 155(and, e.g., generate user content associated with the web content 135,such as a rating, comment, etc. as described below). In one embodiment,the user interface 150 includes one or more buttons 160 to enable theuser to operate on the portion of the web content 155. In oneembodiment, the plug-in module 140 transmits user content 165 to theserver computer 110 (e.g., for indexing).

For purposes of this disclosure, a computer such as the client computer105 includes a processor and memory for storing and executing programcode, data and software. Computers can be provided with operatingsystems that allow the execution of software applications in order tomanipulate data. Client computer 105 can be any device that can displaya website and that can be used by a user. Personal computers, servers,personal digital assistants (PDAs), wireless devices, smartphones,cellular telephones, tablet computers, internet appliances, mediaplayers, home theater systems, and media centers are severalnon-limiting examples of computers.

For the purposes of this disclosure, the term “server” should beunderstood to refer to a service point which provides processing,database, and communication facilities. By way of example, and notlimitation, the term “server” can refer to a single, physical processorwith associated communications and data storage and database facilities,or it can refer to a networked or clustered complex of processors andassociated network and storage devices, as well as operating softwareand one or more database systems and applications software which supportthe services provided by the server. A number of program modules anddata files can be stored on a computer readable medium of the server.They can include an operating system suitable for controlling theoperation of a networked server computer, such as the WINDOWS 7, WINDOWSVISTA, or WINDOWS XP operating system published by Microsoft Corporationof Redmond, Wash., or the Ubuntu operating system distributed byCanonical Ltd. of Douglas, Isle of Man.

In one embodiment, the server computer 110 is a group of servers, suchas one server to receive the submitted user content transmitted from theplug-in module 140 and a second server configured to download/installthe plug-in module 140 into the user's web browser 120. In anotherembodiment, server computer 110 performs both of these functions. In oneembodiment, a third server may be present in FIG. 1A representing athird party web server on the Internet (e.g., an online newspaper site,a blog, etc.) that is separate and distinct from server computer 110.

FIG. 1B is a flowchart illustrating an embodiment of operationsperformed by the server computer 110 and the client computer 105 toenable a user of the client computer 105 to operate on web contentdisplayed by the browser 120. The user uses the web browser 120 to viewand/or listen to web content 135, such as a web page, an audio file, avideo, a post, a media file, etc., in main browser window 130 (Operation170). In one embodiment, the plug-in module 140 is installed prior toand independent from the web content 135; the installation of theplug-in module 140 and its operation requires no prior arrangement madein the web content 135; and thus, the plug-in module 140 can work withany web content 135 found in the web. Alternatively, the web content 135(e.g., a web page associated with the server computer 110) enables theuser to install plug-in module 140. In another embodiment, the web page135 is a third party web page that includes an advertisement to installthe plug-in module 140.

The server computer 110 transmits the plug-in module 140 to the webbrowser 120 of the client computer 105 (Operation 175) and the clientcomputer 105 receives the plug-in module 140 (Operation 180). In oneembodiment, the plug-in module 140 allows the user to remotely log intothe server computer 110. Upon activation of the plug-in module 140(Operation 185), the plug-in module 140 causes the web browser 120 todisplay user interface 150 separate from the main window 130. In oneembodiment, the user interface 150 displays at least a portion of theweb content 155 that the web browser 120 is displaying in its mainwindow 130 (Operation 190). For example, the user interface 150 candisplay representative information of the web content 135, such as apicture, an icon, a sentence, and/or a paragraph in the portion of theweb content 155. In one embodiment, the user interface 150 displaysnotifications, comments, or reviews from other users who have downloadedthe plug-in module 140.

In one embodiment, the user interface 150 automatically selects fordisplay the portion of the web content 155 from the received web content135. Further, in one embodiment the user of the client computer 105 canprovide settings as to what the user interface 150 will display when webcontent 135 is displayed in the web browser 120 (e.g., display the firstfew sentences of the web content 135, display the first graphic andfirst few sentences of web content 135, display the entire web page 135,etc.)

The plug-in module 140 enables the user to operate on the web content155. For example, the user can submit a rating for the web content 155or a comment on the web content 155 (Operation 195) (e.g., user content165). In one embodiment, the user interface 150 enables the user to postthe portion of the web content 155 to a social networking site (e.g.,FACEBOOK®). In one embodiment, the user interface 150 displays currentdiscussions related to the web content 155 and enables the user to addthe web content 135 to a search engine associated with the servercomputer 110. In one embodiment, the user can use the user interface 150to adjust (e.g., add web content to or remove web content from) theportion of the web content 155 displayed by the user interface 150. Forexample, the plug-in module 140 can transmit the URL of the web content135 to the server computer 110. The server computer 110 can update whatis displayed by or the amount of web content 155 displayed by the userinterface 150. In one embodiment, the plug-in module 140 prompts theuser to add the web page 135 to the server computer's index so that theweb page 135 will be present in future search results. The plug-inmodule 140 may transmit the URL of the web page 135 to the servercomputer 110 (which can then extract the web content 135), may transmitthe entire web page 135 to the server computer 110, or may transmit aportion of the web page 135 to the server computer 110. In oneembodiment, the server computer 110 (or the plug-in module 140) grabsthe web page's meta-tags, thumbnail, title, and/or text of the web page135. In one embodiment, the plug-in module 140 allows the user to addweb content 135 (e.g., a web page) to the server computer 110, such asvia the user interface 150, a pop-up window, a menu option,right-clicking the webpage itself, via the browser 120, etc. In oneembodiment, the plug-in module 140 enables the user to change the webcontent's tags in case the meta-tags are inaccurate.

Thus, the user interface 150 enables the user to provideinformation/content about a third party web page 135 to a web pageassociated with the plug-in module 140 (and server computer 110) whilethe third party web page 135 is displayed in web browser 120. Thisinformation/user content 165 can include one or more comments, tips, arating for the web content 155 (e.g., a score for the web content 155),an indication that the user likes or dislikes the web content 155, arecommendation for or on the web content 155, and/or a tag for the webcontent 155. Further, the user interface 150 can enable the user toattach content to the web content 155, share the web content 155 withothers, etc.

The plug-in module 140 allows the user to act on any web page that iscurrently being viewed by the user and, in one embodiment, transmits theuser-created content (e.g., comments and ratings) in association with anidentification of the web content to the server computer 110. After theplug-in module 140 is installed on the web browser 120 (e.g., via aninstallation web page that directs the user to download the plug-inmodule 140 for installation), the user can visit any third party website and click a button associated with the plug-in module 140 to createuser content in association with the third party web site and submit theuser content to the server computer 110. The user does not have to visitthe web site through the plug-in module 140 or user interface 150 butrather can navigate to the web site using the user's web browser 120. Inone embodiment, the plug-in module 140 can be implemented as a built-inmodule of the web browser 120 (e.g., shipped by Microsoft Corporation asa built-in component of INTERNET EXPLORER®).

Thus, when a user is looking at a web page (e.g., a news article or ablog entry), and if the user is interested in acting upon it (e.g., toshare it, to submit it to the server computer 110 for indexing, or torank or comment on it), the user can click on the plug-in module buttonand then work on the user interface 150 that, in one embodiment,populates some of the fields automatically by automatically taking thosecontents (e.g., snippets) from the web page 135 that the user iscurrently looking at (e.g., thumbnail image, the lead sentence, etc.).There is no need for any prior arrangement between the web page beingacted upon and the plug-in module 140/server computer 110.

For example, a blog-related service may use such a plug-in module 140 toassist the blog author that blogs on news articles. When looking at thenews article, the user clicks the plug-in button and the user interface150 shows the blog template that has many fields pre-populated withcontent from the news article (e.g., a thumbnail icon image, a leadsentence, etc.). Thus, the user does not have to perform the copy andpaste manually. The user can work on the user interface 150 to composethe remaining part of the blog entry about the news article, such asrating, comments, etc.

In one embodiment, the user interface 150 displays advertisements to theuser, such as for one or more products. In one embodiment, theadvertisements are transmitted to the browser 120 by the server computer110. Alternatively, a third party advertisement server can transmitadvertisements to the user interface 150 for display. In one embodiment,the advertisements may be related to the portion of the web content 155displayed by the user interface 150. The user interface 150 can alsodisplay statistics. For example, the user interface 150 can displaystatistics associated with the portion of the web content 155,statistics associated with the user (e.g., number of days since the userhas downloaded the plug-in module 140, amount of web content that theuser has commented on, amount of web content that the user has shared,amount of web content that the user has rated or ranked, number ofand/or which other users the user has followed, number of and/or whichother users have followed the user, etc.), statistics about the userinterface 150, statistics about the plug-in module 140, statistics aboutother users associated with the plug-in module 140 (e.g., the number ofusers who have downloaded the plug-in module 140 and/or the number ofusers who have downloaded the plug-in module 140 and who have currentlyactivated the plug-in module 140 to view a corresponding userinterface), and/or statistics about any other information.

In one embodiment, the user interface 150 displays advertisements thatare posted by other users who have downloaded the plug-in module 140.The advertisements can be, for example, an advertisement for a roommate,an advertisement to sell or buy a product, a classified jobs section, adating section, etc. Thus, in one embodiment, a product manager atcompany XYZ can post a job position that is available at XYZ to theusers of the plug-in module 140. As another example, suppose one user isusing his web browser 120 to search for a new television set. In oneembodiment, the plug-in module 140 can detect the user's searching andpost an advertisement for a TV that another user in the community (e.g.,another user who has downloaded the plug-in module 140) is selling.

For each web item (web content) (e.g., a web site, a video, a web page)hosted on the web/internet (typically not on the server computer 110),the server computer 110 allows its users to create user content 165,which typically includes a snippet or portion of the web content 155(such as one or sentences from the web content 135, one or morethumbnail images of the web content 135, etc.). The snippet 155 is notgenerated until a user submits it to the server via the plug-in module140. The user content 165 may further include a set of tags/keywords.The plug-in module 140 and/or the server 110 may automatically selectthe snippet and the tags/keywords 155 for the user, by processing theweb content 135 in an automated way. The snippet and/or thetags/keywords 155 suggested by the plug-in module 140 and/or the servercomputer 110 may be modified by the user via the user interface 150 ofthe plug-in module 140. The snippet 155 is stored on the server computer110 (as part of the user content 165 associated with the web content135); and in one embodiment the user content 165 has a link to the webcontent 135, which allows the users of the server computer 110 to followthe link to see the actual/current version of the web content 135 thatis on the web (typically not on the server computer 110). One or moreusers can add additional contents to the “user content” 165 associatedwith the web content 135, such as a vote/rating, and a comment. Thefirst user submitting the snippet and/or tags/keywords can submit thisinformation with his/her rating/vote and comment.

FIG. 2A is a block diagram of an embodiment of a first client computer205 and a second client computer 210 communicating with the servercomputer 110 over network 115. FIG. 2B is a flowchart of an embodimentof operations performed by the server computer 110. As described above,in one embodiment the plug-in module 215, 217 is transmitted to webbrowser 220 of the first client computer 205 and web browser 225 of thesecond client computer 210, respectively. Each web browser 220, 225 isdisplaying web content (e.g., the first web browser 220 is displayingfirst web content 230) as described above in a main browser window(e.g., first main browser window 233). In one embodiment, the user ofthe first client computer 205 activates plug-in module 215, which inturn results in a corresponding first user interface 240 beingdisplayed. Alternatively, the first user interface 240 is displayed in aweb page served by the server computer 110. The first user interface 240displays a portion of the web content 245. As described above, the userof the first client computer 205 can act upon the first web content 230displayed by the web browser 220 of the first client computer 205 togenerate first user content 250.

As described above, the server computer 110 provides a first userinterface 240 to the first client computer 205 of the first user fordisplay by the first web browser 220 (Operation 265). The servercomputer 110 also provides a second user interface to the second clientcomputer 210 of a second user for display by the second web browser 225(Operation 270).

In one embodiment, the user interfaces (e.g., first user interface 240)provides a way for users to instantly (in real-time) share informationthat one user believes would be of special interest to another user.This may be done via feeds. Feeds can be used to alert other users of,for example, webpages, shared (ideas), tips, and photos. In oneembodiment, the user interface takes a newsfeed entry and redirects itto another user's feed. In one embodiment, comments that are entered ina feed are updated (e.g., regularly), and entered comments can be foundin a webpage discussion page. In one embodiment, the server computer 110(user interface) does not generate duplicate entries.

In one embodiment, the second user submits a feed request 255 for a feedrelated to the first user to the server computer 110. The servercomputer 110 receives the feed request (Operation 275). In oneembodiment, the server computer 110 transmits the feed related to thefirst user 260 to the second client computer 210 to enable the seconduser to receive at least a portion of the first web content 230(Operation 280) (e.g., a thumbnail version of a picture from the webcontent, a sentence from the web content, and/or a link to or in the webcontent). The feed can be sent in search results, newsfeed, and in aplug-in pop-up displayed by the user interface of the second clientcomputer 210. In another embodiment, the users are provided with accessto reply to the feed(s); and thus users can start a conversation usingthe feed(s). The feed(s) serve as a way to communicate between aselected group of people. Users may also subscribe to certain tags toreceive feeds that are generated via an automatic search of the followedtags.

In one embodiment, the transmitting of the feed related to the firstuser to the second client computer 210 to enable the second user toreceive at least a portion of the web content further includes enablingthe second user to reply to the at least a portion of the web content.In one embodiment, the transmitting of the feed includes transmittingsearch results including the at least a portion of the web content tothe second user.

In one embodiment, the feed is transmitted to the second user interfacein real-time when the second user has activated his corresponding userinterface (e.g., has logged in or is displaying the user interface). Inanother embodiment, if the second user has not activated his userinterface (e.g., via the plug-in module), the server computer 110 storesthe feed and pushes the feed to the second client computer 210 when thesecond user activates the second user's plug-in module. Thus, in oneembodiment the feed is similar to instant messaging and email. Thepresentation, in one embodiment, is similar to blog postings in blogs.

In one embodiment, the user interface enables a user to follow anotheruser. For example, if the second user follows the first user, certaincontent of the first user is fed to the second user via a feed. In oneembodiment, permissions are used for users as a way for users to controlwho can interact with them and how. Users may register to follow otherpeople to populate their feeds with relevant information. However,should a user find that another user that he/she is following to be toomuch of an annoyance for any reason, that user can block the user he/sheis following in a number of ways. One way is to block the feed, whichprevents the activities of a user that he/she is following from showingup on the feed. Another way a user can block another person is if theuser finds a particular person's communications unwanted or anannoyance. A further way is messaging. In one embodiment, any user canmessage another user via the user interface. However, this can be agateway to spamming, so by limiting the ability to message certainusers, it can help create a better user experience.

In one embodiment, the user interface includes a feed area (e.g., firstuser feed area 285) where a user can receive real-time information ofwhat his/her followers are doing. For example, for webpage entries,users can rate, comment, and/or find external links to the pages in thisfeed area. In one embodiment, there are two types of ratings—thumbs up(positive) and thumbs down (negative). In one embodiment, ratings canonly be added once per user, per page/site/photo. A positive ratingraises the page/site/photo's calculated score, which can cause it toappear higher in search results. This allows the users to directlydecide what shows up in the highest positions in the search results. Anegative rating lowers the page/site/photo's calculated score, which cancause it to appear lower in the search results. This allows the users todirectly decide what shows up in the lowest positions in the searchresults.

Commenting on an entry in a feed allows a user to express their opinion.In one embodiment, commenting can be done multiple times per user. Inone embodiment, all pages and photos displayed in the feed area arelinked directly to their respective discussion pages. Any commentsposted on the feed area about the websites, webpages, photos, and albumscan be updated on their respective discussion pages.

In one embodiment, if another user finds a comment particularly helpful,he/she can give the comment a positive rating. Similarly, in oneembodiment, if another user finds a comment not particularly helpful,he/she can give the comment a negative rating. In one embodiment, a usercan sort the way his feed area displays information.

In one embodiment, if a second user uses second client computer 210 thathas the plug-in installed to visit the web content that has anassociated user content (e.g., a snippet, a set of votes by differentusers and comments) in the server computer, the browser plug-in moduleshows the availability of the user content (e.g., the numbers ofcomments the server computer 110 stores for the web content displayed inthe main window and the counts of up votes and down votes) and thesecond user can click on the browser plug-in module to activate a userinterface to view the user content and/or provide additional usercontent.

The second user may use a search page of the server computer and/or theuser interface of the plug-in module to search, based on the tags, todiscover the web content and then view the user content using theplug-in module.

In one embodiment, the first user of the first user interface 240 maydirectly request the server computer 110 to feed the user content to aset of other users identified by the first user, such as the user of thesecond client computer 210. When the second client computer 210 is in afeed user interface, the server computer 110 and/or the plug-in moduleof the second client computer 210 automatically presents available feedsof user contents to the second user of the second client computer 210.The server computer 110 may automatically push feeds to the feed userinterface (feed area), as soon as the feed content becomes available orupdated. Alternatively, the feed user interface (feed area) mayperiodically check with the server computer 110 for updates and/or newfeeds.

The available feeds include the user content that is explicitlyidentified by other users (e.g., the first user of the first clientcomputer 205) for sharing with the second user, implicitly identified bythe second user via subscription to tags identified by the second user,or implicitly identified by the second user via following one or moreother users (e.g., the first user as a friend who accepts the requestfrom the second user to follow the first user). When the second userfollows the first user, the user contents of interest to the first userare fed to the second user in the feed user interface (feed area) (e.g.,presented via activating the plug-in module). For example, the usercontents related to the web content that are commented on, voted on,and/or discovered/submitted by the first user to the server computer 110can be fed to the second user, if the second user follows the firstuser, as indicated by the user following data stored in the servercomputer 110. In one embodiment, different types of user contents (e.g.,explicitly shared by the first user to the second user, implicitlyshared via following the first user, and implicitly identified viasubscription to tags) are presented in different sections of the feeduser interface (feed area). Duplicated items are eliminated from thesections, based on a predetermined priority (e.g., if an item ispresented in the explicit shared section, the item is not show in othersections).

When a first user explicitly requests the sharing of a user content witha second user in connection with web content, the server computer 110generates a feed in response to the user request and makes the feedavailable as a real time response to the user request.

When a user content is created or updated for a web item (web content),the server computer 110 checks tag subscription data to create new feedsin real time with the creation or updating of the user content (forfeeding to users who subscribe to a tag assigned to the web item); inaddition, the server computer 110 checks the user following data tocreate new feeds in real time with the creation or updating of the usercontent (for feeding to users who follow 1) the user who created orupdated the web item and/or 2) the users who subscribed to tags toreceive a feed of the user content).

FIGS. 3A-3F are exemplary screen shots of the user interface and theplug-in module when a web page is added to the server computer 110(e.g., added to be indexed for search results) via the plug-in module.In FIG. 3A, screen shot 305 shows web content 310 being displayed by webbrowser 315. The user has activated the plug-in module via plug-inmodule button 320, which results in user interface 325 being displayed.Screen shot 305 shows the user interface 325 enabling the user to log invia log-in input areas 330, 335. FIG. 3B shows a screen shot 340illustrating the user interface 325 that includes a portion of the webcontent 345 associated with web content 310. The user in screen shot 340can enter in a comment relating to the portion of the web content 345.In FIG. 3B, the envelop icon 346 with the number (22) may be aninterface to open the section to see the explicitly shared feeds; theperson icon 347 with the number (3) may be related to the user interfacefor following other users (and/or feeds via following); and the “!” icon348 with the number (222) may be for feeds or for feeds via subscriptionto tags. In FIG. 3B, the thumbnails of all pictures are arranged in aslide show mode 349 to allow the user to view the pictures one at atime. The option below the slide show allows the user to select analternative way to present the web page visually: generating a domainscreenshot of the web page, instead of creating the thumbnail images ofpictures in the web page (some web pages may not have a picture). Theoption to the left of the “like” voting button can be selected to submitthe user content anonymously. The comment of the user submittedanonymously will be shown to others without revealing the identity ofthe user who requested to submit the comment with the “anonymize”option.

FIG. 3C shows a screen shot 350 that includes user interface 325 havinga comment 355 from the user about the portion of the web content 345.The user has indicated that he/she “likes” the web content 345. FIG. 3Dis a screen shot 360 of user interface 325 displaying two comments, thelike comment 355 and a dislike comment 365. FIG. 3E shows a screen shot370 with user interface 325 displaying contacts 375 that the user canshare the web content 345 with. FIG. 3F shows a screen shot 380 withuser interface 325 indicating via notification 385 that the user hasshared the web content 345 with two people.

FIGS. 4A-4F are exemplary screen shots of the user interface and theplug-in module when a web site is added to the server computer 110(e.g., added to be indexed for search results) via the plug-in module.In FIG. 4A, screen shot 405 shows web site 410 being displayed by webbrowser 415. The user has activated the plug-in module via plug-inmodule button 420, which results in user interface 425 being displayed.Screen shot 405 shows the user interface 425 enabling the user to log invia log-in input areas 430, 435. FIG. 4B shows a screen shot 440illustrating the user interface 425 that includes a portion of the website content 445 associated with web site 410. The user in screen shot440 can enter in a comment relating to the portion of the web content445. FIG. 4C shows a screen shot 450 that includes user interface 425having a comment 455 from the user about the portion of the web sitecontent 445. The user has indicated that he/she “likes” the web sitecontent 445. FIG. 4D is a screen shot 460 of user interface 425displaying two comments, the like comment 455 and a dislike comment 465.FIG. 4E shows a screen shot 470 with user interface 425 displayingcontacts 475 that the user can share the web site content 445 with. FIG.4F shows a screen shot 480 with user interface 425 indicating vianotification 485 that the user has shared the web site content 445 withtwo people.

FIG. 5 is a block diagram illustrating an internal architecture of anexample of a computer, such as server computer 110 and/or clientcomputer 105, in accordance with one or more embodiments of the presentdisclosure. A computer as referred to herein refers to any device with aprocessor capable of executing logic or coded instructions, and could bea server, personal computer, set top box, smart phone, pad computer ormedia device, to name a few such devices. As shown in the example ofFIG. 5, internal architecture 500 includes one or more processing units(also referred to herein as CPUs) 512, which interface with at least onecomputer bus 502. Also interfacing with computer bus 502 are persistentstorage medium/media 506, network interface 514, memory 504, e.g.,random access memory (RAM), run-time transient memory, read only memory(ROM), etc., media disk drive interface 508 as an interface for a drivethat can read and/or write to media including removable media such asfloppy, CD-ROM, DVD, etc. media, display interface 510 as interface fora monitor or other display device, keyboard interface 516 as interfacefor a keyboard, pointing device interface 518 as an interface for amouse or other pointing device, and miscellaneous other interfaces notshown individually, such as parallel and serial port interfaces, auniversal serial bus (USB) interface, and the like.

Memory 504 interfaces with computer bus 502 so as to provide informationstored in memory 504 to CPU 512 during execution of software programssuch as an operating system, application programs, device drivers, andsoftware modules that comprise program code, and/or computer-executableprocess operations, incorporating functionality described herein, e.g.,one or more of process flows described herein. CPU 512 first loadscomputer-executable process operations from storage, e.g., memory 504,storage medium/media 506, removable media drive, and/or other storagedevice. CPU 512 can then execute the stored process operations in orderto execute the loaded computer-executable process operations. Storeddata, e.g., data stored by a storage device, can be accessed by CPU 512during the execution of computer-executable process operations.

Persistent storage medium/media 506 is a computer readable storagemedium(s) that can be used to store software and data, e.g., anoperating system and one or more application programs. Persistentstorage medium/media 506 can also be used to store device drivers, suchas one or more of a digital camera driver, monitor driver, printerdriver, scanner driver, or other device drivers, web pages, contentfiles, playlists and other files. Persistent storage medium/media 506can further include program modules and data files used to implement oneor more embodiments of the present disclosure.

For the purposes of this disclosure a computer readable medium storescomputer data, which data can include computer program code that isexecutable by a computer, in machine readable form. By way of example,and not limitation, a computer readable medium may comprise computerreadable storage media, for tangible or fixed storage of data, orcommunication media for transient interpretation of code-containingsignals. Computer readable storage media, as used herein, refers tophysical or tangible storage (as opposed to signals) and includeswithout limitation volatile and non-volatile, removable andnon-removable media implemented in any method or technology for thetangible storage of information such as computer-readable instructions,data structures, program modules or other data. Computer readablestorage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM,flash memory or other solid state memory technology, CD-ROM, DVD, orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other physical ormaterial medium which can be used to tangibly store the desiredinformation or data or instructions and which can be accessed by acomputer or processor.

For the purposes of this disclosure a module is a software, hardware, orfirmware (or combinations thereof) system, process or functionality, orcomponent thereof, that performs or facilitates the processes, features,and/or functions described herein (with or without human interaction oraugmentation). A module can include sub-modules. Software components ofa module may be stored on a computer readable medium. Modules may beintegral to one or more servers, or be loaded and executed by one ormore servers. One or more modules may be grouped into an engine or anapplication.

Those skilled in the art will recognize that the methods and systems ofthe present disclosure may be implemented in many manners and as suchare not to be limited by the foregoing exemplary embodiments andexamples. In other words, functional elements being performed by singleor multiple components, in various combinations of hardware and softwareor firmware, and individual functions, may be distributed among softwareapplications at either the user device or server or both. In thisregard, any number of the features of the different embodimentsdescribed herein may be combined into single or multiple embodiments,and alternate embodiments having fewer than, or more than, all of thefeatures described herein are possible. Functionality may also be, inwhole or in part, distributed among multiple components, in manners nowknown or to become known. Thus, myriad software/hardware/firmwarecombinations are possible in achieving the functions, features,interfaces and preferences described herein. Moreover, the scope of thepresent disclosure covers conventionally known manners for carrying outthe described features and functions and interfaces, as well as thosevariations and modifications that may be made to the hardware orsoftware or firmware components described herein as would be understoodby those skilled in the art now and hereafter.

While the system and method have been described in terms of one or moreembodiments, it is to be understood that the disclosure need not belimited to the disclosed embodiments. It is intended to cover variousmodifications and similar arrangements included within the spirit andscope of the claims, the scope of which should be accorded the broadestinterpretation so as to encompass all such modifications and similarstructures. The present disclosure includes any and all embodiments ofthe following claims.

What is claimed is:
 1. A computing device comprising: a processor; and amedium storing instructions that, when executed by the processor, causethe computing device to: provide a first plug-in module to a firstclient computer operated by a first user, the first plug-in module fordisplaying a first user interface by a first web browser, the first webbrowser displaying web content to the first user on the first clientcomputer, wherein the first user interface is separate from a mainwindow of the first web browser, and wherein the first user interfaceautomatically selects a portion of the web content and displays theportion of the web content within the first user interface; provide asecond plug-in module to a second client computer operated by a seconduser, the second plug-in module for displaying a second user interfaceby a second web browser on the second client computer, wherein thesecond user interface is separate from a main window of the second webbrowser; receive a feed request from the second user via the second userinterface; receive a submission associated with the web content from thefirst user via the first user interface; determine that the submissionis of interest to the second user; and in response to determining thatthe submission is of interest to the second user, transmit a feed to thesecond client computer to present the submission to the second user viathe second user interface.
 2. The computing device of claim 1, whereinthe feed is transmitted to the second client computer via a newsfeedtechnique.
 3. The computing device of claim 1, wherein the feed includesthe submission; and the submission identifies web content.
 4. Thecomputing device of claim 1, wherein the submission includes at leastone of a webpage, an idea, a comment, and a digital photograph; and thesubmission is stored in association with the web content.
 5. Thecomputing device of claim 1, wherein the submission is determined to beof interest to the second user based on an identification of the seconduser in the submission.
 6. The computing device of claim 1, wherein thesubmission is determined to be of interest to the second user based on atag of the web content with which the submission is associated.
 7. Thecomputing device of claim 1, wherein the submission is determined to beof interest to the second user based on a user to which the second userfollows.
 8. The computing device of claim 1, wherein the first userinterface is presented in a pop-up window separate from the main windowof the first web browser, and the second user interface is presented ina pop-up window separate from the main window of the second web browser.9. A non-transitory computer readable storage medium storing computerprogram instructions that, when executed by a server computer, cause theserver computer to: provide a first plug-in module to a first clientcomputer operated by a first user, the first plug-in module fordisplaying a first user interface by a first web browser, the first webbrowser displaying web content to the first user on the first clientcomputer, wherein the first user interface is separate from a mainwindow of the first web browser, and wherein the first user interfaceautomatically selects a portion of the web content and displays theportion of the web content within the first user interface; provide asecond plug-in module to a second client computer operated by a seconduser, the second plug-in module for displaying a second user interfaceby a second web browser on the second client computer, wherein thesecond user interface is separate from a main window of the second webbrowser; receive a feed request from the second user via the second userinterface; receive a submission associated with the web content from thefirst user via the first user interface; determine that the submissionis of interest to the second user; and in response to determining thatthe submission is of interest to the second user, transmit a feed to thesecond client computer to present the submission to the second user viathe second user interface.
 10. The medium of claim 9, wherein the firstuser interface is presented in a pop-up window separate from the mainwindow of the first web browser, and the second user interface ispresented in a pop-up window separate from the main window of the secondweb browser.
 11. A method, comprising: providing, by a computing device,a first plug-in module to a first client computer operated by a firstuser, the first plug-in module for displaying a first user interface bya first web browser, the first web browser displaying web content to thefirst user on the first client computer, wherein the first userinterface is separate from a main window of the first web browser, andwherein the first user interface automatically selects a portion of theweb content and displays the portion of the web content within the firstuser interface; providing, by the computing device, a second plug-inmodule to a second client computer operated by a second user, the secondplug-in module for displaying a second user interface by a second webbrowser on the second client computer, wherein the second user interfaceis separate from a main window of the second web browser; receiving, bythe computing device, a feed request from the second user via the seconduser interface; receiving, by the computing device, a submissionassociated with the web content from the first user via the first userinterface; determining, by the computing device, that the submission isof interest to the second user; and in response to determining that thesubmission is of interest to the second user, transmitting, by thecomputing device, a feed to the second client computer to present thesubmission to the second user via the second user interface.
 12. Themethod of claim 11, wherein the feed is transmitted to the second clientcomputer via a newsfeed technique.
 13. The method of claim 11, whereinthe feed includes the submission; and the submission identifies webcontent.
 14. The method of claim 11, wherein the submission includes atleast one of a webpage, an idea, a comment, and a digital photograph;and the submission is stored in association with the web content. 15.The method of claim 11, wherein the submission is determined to be ofinterest to the second user based on an identification of the seconduser in the submission.
 16. The method of claim 11, wherein thesubmission is determined to be of interest to the second user based on atag of the web content with which the submission is associated.
 17. Themethod of claim 11, wherein the submission is determined to be ofinterest to the second user based on a user to which the second userfollows.
 18. The method of claim 11, wherein the first user interface ispresented in a pop-up window separate from the main window of the firstweb browser, and the second user interface is presented in a pop-upwindow separate from the main window of the second web browser.